﻿#region Using Statements
using System;
#endregion

namespace DirectZZT.Shared.Scripting
{
    /// <summary>
    /// Defines the possible script states.
    /// </summary>
    [Flags()]
    public enum ScriptState
    {
        /// <summary>
        /// The script hasn't been started yet.
        /// </summary>
        Unstarted = 0,
        /// <summary>
        /// The script is running.
        /// </summary>
        Running = (1 << 1),
        /// <summary>
        /// The script has successfully finished.
        /// </summary>
        Finished = (1 << 2),
        /// <summary>
        /// The script has faulted. It may not have reached the end.
        /// </summary>
        Faulted = (1 << 3),

        /// <summary>
        /// The script's execution was halted via debugger.
        /// This is used by the debugger and should never be modified!
        /// </summary>
        DEBUG_BREAK = (1 << 16),
        /// <summary>
        /// The script's execution is scheduled to have it stepping through.
        /// This is used by the debugger and should never be modified!
        /// </summary>
        DEBUG_STEP = (1 << 17),
    }
}
